Data processing is an important part of many circuits and systems. Data which may be processed in various circuits or systems may have different levels of security. In devices which process data, certain circuits may be designated as requiring different levels of security than other circuits. For example, data processed by some circuits may require a high level of security compared to other data, which generally requires a lower level of security. Examples of applications which have circuits that require a high level of security could be financial applications, military applications, medical applications, or any other application where compromised data could have an adverse effect. The compromised data may be intentionally altered by an adverse party, or inadvertently altered by virtue of the presence of the connections between the two types of circuits.
A system which consists of multiple heterogeneous sub-systems requires a “protection” mechanism to be able to protect memory and allocate devices (i.e. slaves) to sub-systems (i.e. masters) such that a sub-system can be isolated from erroneous behavior (of software or hardware) of other sub-systems. Connections between the various circuits may provide an access point through which an unauthorized access may occur. The security of the data transferred between the circuits may be compromised, where the compromised data may present a risk to the user of the circuits and systems. To protect from erroneous software or hardware, memory (e.g. DRAM, on-chip-memory), peripherals, and system control registers may be protected from illegal accesses by software or hardware.